home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / mtwindow.d < prev    next >
Text File  |  1997-10-26  |  6KB  |  150 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *  MAGICTOOLS   Modula's  All purpose  GEM  Interface  Cadre  Toolbox  *
  4.  *               ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus, sowie die   *
  11.  * Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
  12.  * oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail-    *
  13.  * boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen    *
  14.  * Einverst„ndnisserkl„rung des Autors.                                 *
  15.  *                                                                      *
  16.  * Die Verbreitung des Moduls als Teil eines gelinkten Programms ist    *
  17.  * fr Lizenznehmer ausdrcklich erlaubt!  Der Autor beh„lt sich das    *
  18.  * Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
  19.  * widerrufen.                                                          *
  20.  *----------------------------------------------------------------------*)
  21.  
  22. (*----------------------------------------------------------------------*
  23.  * mtWindows    Windowhandling                                          *
  24.  *----------------------------------------------------------------------*)
  25.  
  26. DEFINITION MODULE mtWindows;
  27.  
  28. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  29.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  30.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  31.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  32.  
  33.  
  34.  
  35.  
  36.  
  37. FROM mtTerminal IMPORT  TERMINAL;
  38.  
  39. PROCEDURE NewWindow (elements: sBITSET; REF   name, info: ARRAY OF CHAR;
  40.                      VAR win: sINTEGER): BOOLEAN;
  41. (* Reserviert Speicher fr das Fenster und berechnet maximale Koordinaten *)
  42.  
  43. PROCEDURE DeleteWindow (VAR win: sINTEGER);
  44. (* Gibt den vom Fenster belegten Speicher wieder frei. Ein ge”ffnetes Fenster
  45.  * wird dabei wieder geschlossen
  46.  *)
  47.  
  48. PROCEDURE MaxWorkarea (win: sINTEGER; VAR rect: ARRAY OF LOC);
  49. (* Liefert die maximale Arbeitsfl„che eines Fensters *)
  50.  
  51. PROCEDURE CalcWorkarea (win: sINTEGER; VAR rect: ARRAY OF LOC);
  52. (* Berechnet die Arbeitsfl„che eines ge”ffneten Fensters. *)
  53.  
  54. PROCEDURE OpenWindow (win: sINTEGER; rect: ARRAY OF LOC);
  55. (* ™ffnet ein zuvor mit WindowCreate definiertes Fenster.
  56.  * rect (x, y, w und h) beschreiben den Arbeitsbereich des Fensters.
  57.  *)
  58.  
  59. PROCEDURE CloseWindow (win: sINTEGER);
  60. (* Schliežt das Fenster. *)
  61.  
  62. PROCEDURE CloseWindows;
  63. (* Schliežt alle von diesem Modul ge”ffneten Fenster *)
  64.  
  65. PROCEDURE DeleteWindows;
  66. (* L”scht alle von diesem Modul ge”ffneten Fenster. Ist ein Fenster noch
  67.  * ge”ffnet, wird es vorher geschlossen.
  68.  *)
  69.  
  70. PROCEDURE OwnWindow (win: sINTEGER): BOOLEAN;
  71. (* TRUE, wenn das Fenster ber dieses Modul ge”ffnet wurde *)
  72.  
  73. PROCEDURE WindowTop (win: sINTEGER);
  74. PROCEDURE TopWindow (): sINTEGER;
  75. (* Macht Fenster zum TOP-Window bzw. liefert das oberste Fenster *)
  76.  
  77. PROCEDURE WindowFulled (win: sINTEGER);
  78. (* Bringt Fenster in die gr”žtm”gliche Ausdehnung *)
  79.  
  80. PROCEDURE WindowPos (win: sINTEGER; x, y: sINTEGER);
  81. (* Plaziert das Fenster an Position *)
  82.  
  83. PROCEDURE WindowSize (win: sINTEGER; w, h: sINTEGER);
  84. (* Dimensioniert das Fenster mit Breite w und H”he h *)
  85.  
  86. PROCEDURE WindowName (win: sINTEGER; REF  name: ARRAY OF CHAR);
  87. (* Setzt den Namen des Fensters *)
  88.  
  89. PROCEDURE WindowInfo (win: sINTEGER; REF  info: ARRAY OF CHAR);
  90. (* Setzt die Infozeile des Fensters *)
  91.  
  92. CONST   VSlider =       0;
  93.         HSlider =       1;
  94.  
  95. PROCEDURE WindowSlider (win, which, max, act, fpos: sINTEGER);
  96. (* Setzt den vertikalen bzw. horizontalen Slider.
  97.  * max ist die Gesamtanzahl der Zeilen/Spalten, act ist die Zahl der
  98.  * Zeilen/Spalten im Fenster, fpos ist die erste Zeile/Spalte des Dokuments
  99.  * im Fenster.
  100.  *
  101.  * Beispiel:
  102.  *
  103.  * max =  1500       Der anzuzeigende Text hat 1500 Zeilen
  104.  * act =  25         Anzahl der Zeilen im Fenster
  105.  * fpos = 786        Erste Zeile des Textes im Fenster
  106.  *
  107.  * Die Routine berechnet die Gr”že und Position des Sliders und setzt ihn
  108.  * entsprechend den ermittelten Werten. Dabei wird nur gesetzt, wenn der
  109.  * Slider nicht schon diese Gr”že hat.
  110.  *
  111.  *)
  112.  
  113. PROCEDURE GetElements (win: sINTEGER; VAR elements: sBITSET;
  114.                        VAR vsize, vpos, hsize, hpos: sINTEGER;
  115.                        VAR name, info: ARRAY OF CHAR);
  116. (* Liefert die Fenster-Elemente *)
  117.  
  118.  
  119. PROCEDURE ConnectTerminal (win: sINTEGER; term: TERMINAL);
  120. (* Hier kann ein Terminal aus mtTerminal bergeben werden.
  121.  * Alle Gr”žen- und Positions„nderungen des Fensters werden dann automatisch
  122.  * auf das Terminal bertragen.
  123.  *)
  124.  
  125. PROCEDURE WindowTerminal (win: sINTEGER): TERMINAL;
  126. (* Liefert - sofern ein TERMINAL ans Fenster gebunden ist - das zum Fenster
  127.  * geh”rende TERMINAL.
  128.  *)
  129.  
  130.  
  131. CONST   FIRSTRECT =     0;
  132.         NEXTRECT =      1;
  133.  
  134. PROCEDURE RectList (win: sINTEGER; flag: sINTEGER; 
  135.                     VAR rect: ARRAY OF LOC): BOOLEAN;
  136. (* Klappert die Rechteckliste fr ein WINDOW ab. TRUE, wenn das Rechteck
  137.  * gltig, FALSE wenn ungltig.
  138.  *)
  139.  
  140. PROCEDURE RcIntersect (VAR rect1, rect2: ARRAY OF LOC): BOOLEAN;
  141. (* Prft ob sich die Rechtecke rect1 und rect2 schneiden. TRUE wenn dies
  142.  * der Fall ist. Die Schnittfl„che ist dann in rect2
  143.  *)
  144.  
  145. PROCEDURE UseGraphics (use: BOOLEAN);
  146. (* wenn TRUE wird der bliche Grafik-Zinnober gemacht. Default ist TRUE *)
  147.  
  148. END mtWindows.
  149.  
  150.